import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'

// 引入vue全局自定义过滤器
import './assets/js/vue_filter'
// 引入全局axios对象
import './assets/js/axios.config'
// 引入全局工具对象util
import {recoverVuex} from './assets/js/util/common_util';
// 引入全局自定义基础样式(style格式)
// import './assets/css/common_style.styl'


// 配置后端基础url
// 配置axios.defaults.baseUrl
Vue.prototype.axios.defaults.baseURL = 'http://localhost:7070/mock/java/'
console.log('++++axios base url:')
console.log(Vue.prototype.axios.defaults.baseURL)

// 为避免用户按浏览器刷新按钮后，vuex中数据丢失
// 将vuex数据缓存入sessionStorage，用户不关闭浏览器，sessionStorage中数据一直存在
// 从sessionStorage中读取缓存的Vuex中的数据
// util.recoverVuexObj(store, 'userinfo')
// util.recoverVuexValue(store, 'isLogin')
recoverVuex(store.state)


// 路由拦截器必须放在new Vue之前，否则不起作用
router.beforeEach((to, from, next) => {
  // 登陆页面直接跳转
  if (to.path === '/login') {
    next()
    return
  }

  const isLogin = store.state.isLogin

  // 这里读不到vuex的storee
  // 继续跳转
  if (isLogin) {
    // 不能写this.$store
    console.log('已经登陆')
    next()
  } else { // 没有username,跳转到登陆页面
    next('/login')
  }
})

new Vue({
  router,
  store,
  render: h => h(App)
}).$mount('#app')
